213fcbf32433a4ad39eb45535fd096ad05093e90,portlets/web-form-portlet/docroot/WEB-INF/src/com/liferay/webform/action/ConfigurationActionImpl.java,ConfigurationActionImpl,processAction,#PortletConfig#ActionRequest#ActionResponse#,47

Before Change



		String cmd = ParamUtil.getString(actionRequest, Constants.CMD);

		if (!cmd.equals(Constants.UPDATE)) {
			return;
		}

		String title = ParamUtil.getString(actionRequest, "title");
		String description = ParamUtil.getString(actionRequest, "description");
		boolean requireCaptcha = ParamUtil.getBoolean(
			actionRequest, "requireCaptcha");
		String successURL = ParamUtil.getString(actionRequest, "successURL");

		boolean sendAsEmail = ParamUtil.getBoolean(
			actionRequest, "sendAsEmail");
		String subject = ParamUtil.getString(actionRequest, "subject");
		String emailAddress = ParamUtil.getString(
			actionRequest, "emailAddress");

		boolean saveToDatabase = ParamUtil.getBoolean(
			actionRequest, "saveToDatabase");

		boolean saveToFile = ParamUtil.getBoolean(actionRequest, "saveToFile");
		String fileName = ParamUtil.getString(actionRequest, "fileName");

		boolean updateFields = ParamUtil.getBoolean(
			actionRequest, "updateFields");

		String portletResource = ParamUtil.getString(
			actionRequest, "portletResource");

		PortletPreferences preferences =
			PortletPreferencesFactoryUtil.getPortletSetup(
				actionRequest, portletResource);

		if (Validator.isNull(title)) {
			SessionErrors.add(actionRequest, "titleRequired");
		}

		if (Validator.isNull(subject)) {
			SessionErrors.add(actionRequest, "subjectRequired");
		}

		if (!sendAsEmail && !saveToDatabase && !saveToFile) {
			SessionErrors.add(actionRequest, "handlingRequired");
		}

		if (sendAsEmail) {
			if (Validator.isNull(emailAddress)) {
				SessionErrors.add(actionRequest, "emailAddressRequired");
			}
			else if (!Validator.isEmailAddress(emailAddress)) {
				SessionErrors.add(actionRequest, "emailAddressInvalid");
			}
		}

		if (saveToFile) {

			// Check if server can create a file as specified

			try {
				FileOutputStream fos = new FileOutputStream(fileName, true);

				fos.close();
			}
			catch (SecurityException es) {
				SessionErrors.add(actionRequest, "fileNameInvalid");
			}
			catch (FileNotFoundException fnfe) {
				SessionErrors.add(actionRequest, "fileNameInvalid");
			}
		}

		if (!SessionErrors.isEmpty(actionRequest)) {
			return;
		}

		preferences.setValue("title", title);
		preferences.setValue("description", description);
		preferences.setValue("requireCaptcha", String.valueOf(requireCaptcha));
		preferences.setValue("successURL", successURL);
		preferences.setValue("sendAsEmail", String.valueOf(sendAsEmail));
		preferences.setValue("subject", subject);
		preferences.setValue("emailAddress", emailAddress);
		preferences.setValue("saveToDatabase", String.valueOf(saveToDatabase));
		preferences.setValue("saveToFile", String.valueOf(saveToFile));
		preferences.setValue("fileName", fileName);

		if (updateFields) {
			int i = 1;

			String databaseTableName = WebFormUtil.getNewDatabaseTableName(
				portletResource);

			preferences.setValue("databaseTableName", databaseTableName);

			int[] formFieldsIndexes = StringUtil.split(
				ParamUtil.getString(actionRequest, "formFieldsIndexes"), 0);

			for (int formFieldsIndex : formFieldsIndexes) {
				String fieldLabel = ParamUtil.getString(
					actionRequest, "fieldLabel" + formFieldsIndex);

				if (Validator.isNull(fieldLabel)) {
					continue;
				}

				String fieldType = ParamUtil.getString(
					actionRequest, "fieldType" + formFieldsIndex);
				boolean fieldOptional = ParamUtil.getBoolean(
					actionRequest, "fieldOptional" + formFieldsIndex);
				String fieldOptions = ParamUtil.getString(
					actionRequest, "fieldOptions" + formFieldsIndex);
				String fieldValidationScript = ParamUtil.getString(
					actionRequest, "fieldValidationScript" + formFieldsIndex);
				String fieldValidationErrorMessage = ParamUtil.getString(
					actionRequest,
					"fieldValidationErrorMessage" + formFieldsIndex);

				if ((Validator.isNotNull(fieldValidationScript) ^
					(Validator.isNotNull(fieldValidationErrorMessage)))) {

					SessionErrors.add(
						actionRequest, "invalidValidationDefinition" + i);
				}

				preferences.setValue("fieldLabel" + i, fieldLabel);
				preferences.setValue("fieldType" + i, fieldType);
				preferences.setValue(
					"fieldOptional" + i, String.valueOf(fieldOptional));
				preferences.setValue("fieldOptions" + i, fieldOptions);
				preferences.setValue(
					"fieldValidationScript" + i, fieldValidationScript);
				preferences.setValue(

After Change


		String portletResource = ParamUtil.getString(
			actionRequest, "portletResource");

		PortletPreferences preferences =
			PortletPreferencesFactoryUtil.getPortletSetup(
				actionRequest, portletResource);

		if (Validator.isNull(title)) {
			SessionErrors.add(actionRequest, "titleRequired");
		}

		if (Validator.isNull(subject)) {
			SessionErrors.add(actionRequest, "subjectRequired");
		}

		if (!sendAsEmail && !saveToDatabase && !saveToFile) {
			SessionErrors.add(actionRequest, "handlingRequired");
		}

		if (sendAsEmail) {
			if (Validator.isNull(emailAddress)) {
				SessionErrors.add(actionRequest, "emailAddressRequired");
			}
			else if (!Validator.isEmailAddress(emailAddress)) {
				SessionErrors.add(actionRequest, "emailAddressInvalid");
			}
		}

		if (saveToFile) {

			// Check if server can create a file as specified

			try {
				FileOutputStream fos = new FileOutputStream(fileName, true);

				fos.close();
			}
			catch (SecurityException es) {
				SessionErrors.add(actionRequest, "fileNameInvalid");
			}
			catch (FileNotFoundException fnfe) {
				SessionErrors.add(actionRequest, "fileNameInvalid");
			}
		}

		if (!SessionErrors.isEmpty(actionRequest)) {
			return;
		}

		preferences.setValue("title", title);
		preferences.setValue("description", description);
		preferences.setValue("requireCaptcha", String.valueOf(requireCaptcha));
		preferences.setValue("successURL", successURL);
		preferences.setValue("sendAsEmail", String.valueOf(sendAsEmail));
		preferences.setValue("subject", subject);
		preferences.setValue("emailAddress", emailAddress);
		preferences.setValue("saveToDatabase", String.valueOf(saveToDatabase));
		preferences.setValue("saveToFile", String.valueOf(saveToFile));
		preferences.setValue("fileName", fileName);

		if (updateFields) {
			int i = 1;
			Locale defaultLocale = LocaleUtil.getDefault();
			String defaultLanguageId = LocaleUtil.toLanguageId(defaultLocale);

			String databaseTableName = WebFormUtil.getNewDatabaseTableName(
				portletResource);

			preferences.setValue("databaseTableName", databaseTableName);

			int[] formFieldsIndexes = StringUtil.split(
				ParamUtil.getString(actionRequest, "formFieldsIndexes"), 0);

			for (int formFieldsIndex : formFieldsIndexes) {
				Map<Locale, String> fieldLabelMap =
					LocalizationUtil.getLocalizationMap(
						actionRequest, "fieldLabel" + formFieldsIndex);

				if (Validator.isNull(fieldLabelMap.get(defaultLocale))) {
					continue;
				}

				String fieldType = ParamUtil.getString(
					actionRequest, "fieldType" + formFieldsIndex);
				boolean fieldOptional = ParamUtil.getBoolean(
					actionRequest, "fieldOptional" + formFieldsIndex);
				Map<Locale, String> fieldOptionsMap =
					LocalizationUtil.getLocalizationMap(
						actionRequest, "fieldOptions" + formFieldsIndex);
				String fieldValidationScript = ParamUtil.getString(
					actionRequest, "fieldValidationScript" + formFieldsIndex);
				String fieldValidationErrorMessage = ParamUtil.getString(
					actionRequest,
					"fieldValidationErrorMessage" + formFieldsIndex);

				if ((Validator.isNotNull(fieldValidationScript) ^
					(Validator.isNotNull(fieldValidationErrorMessage)))) {

					SessionErrors.add(
						actionRequest, "invalidValidationDefinition" + i);
				}

				for (Locale locale : fieldLabelMap.keySet()) {
					String languageId = LocaleUtil.toLanguageId(locale);
					String fieldLabelValue = fieldLabelMap.get(locale);
					String fieldOptionsValue = fieldOptionsMap.get(locale);

					if (Validator.isNotNull(fieldLabelValue)) {
						LocalizationUtil.setPreferencesValue(
							preferences, "fieldLabel" + i, languageId,
							fieldLabelValue);
					}

					if (Validator.isNotNull(fieldOptionsValue)) {
						LocalizationUtil.setPreferencesValue(
							preferences, "fieldOptions" + i, languageId,
							fieldOptionsValue);
					}
				}